루비에서는 행복한 경로를 넘어서기 선형 논리에서 벗어나, 실패를 단순한 프로그램 종료 사고가 아니라 일등 객체 프로그램 종료를 초래하는 재난으로 여기는 방어적인 자세로 전환한다는 의미입니다.
1. 예외 계층 구조
루비는 그림 8.1에 표시된 정돈된 예외 계층 구조를 미리 정의합니다. 모든 오류는 이 트리 내의 클래스 인스턴스이며, Exception 루트인 StandardError에서 시작됩니다. 이 트리를 이해하는 것은 매우 중요합니다: 애플리케이션 수준 오류는 일반적으로 NoMemoryError와 같은 시스템 수준 실패는 Exception에서 직접 파생됩니다.
2. 오류를 데이터 객체로 다루기
하위 수준 언어에서 오류가 간단한 반환 코드일 수 있는 것과 달리, 루비는 컨텍스트를 포장메시지 문자열과 실행 백트레이스를 포함하여 공식적인 객체로 만듭니다. 이를 통해 개발자는 런타임 중단을 상속을 통해 검사하고 관리할 수 있는 데이터로 취급할 수 있습니다.
아키텍처적 의도
계층 구조는 반드시 잡아내서는 안 되는 치명적인 시스템 오류와 복구 가능한 애플리케이션 오류(StandardError)를 구분합니다.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>